Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- IMAGE BLUR



  Don't Overload #nil?

There’s a popular post on Hacker News about writing confident code by, among other things, overloading Object#nil? and returning “null objects” instead of nil itself.DO NOT DO THIS.In Ruby, all objects (except nil itself) coerce to the boolean value true. Your object will be nil and true at the same time. Bad things will happen. Your coworkers will cry. Sad people from around the world will ask bewildering questions on your mailing list.Here’s what happen...

   Ruby,#nil,Overload,Object     2011-11-10 10:50:22

  GUI vs CLI: Operation vs Expression

Consider this user interface for a car:The goal of these interfaces is to make you operate something, and operate it efficiently and safely. The grooves and clicks and limits constrain the range of motion and the number of choices. The visual look heavily hints at how to actively use it. They are usually not hard to learn. More importantly, the learning curve plateaus. Once you learn how to drive a car, there’s not much progression after that. Boundedness is ...

   GUI,CLI,Operation,Expression,Programmer,IDE     2011-10-25 10:31:26

  Why Windows?

Since the latest episodes of both Bent and Throw it Against the Wall have seen me mention Windows Phone 7, I think it’s about time I talk about why I like it. I know there’s a lot of scepticism surrounding it. And why not? Most people I know who were considering jumping the Microsoft ship did so in the dark days of Vista, so that’s their last experience with Windows. Anyone who saw their parents working on a Treo back in the nascent days of the Blackberry know the slop...

   Windows,Features,Advantage     2012-02-10 06:22:13

  How can I teach a bright person, with no programming experience, how to program?

I usually prescribe the same sequence for anyone who wants to learn programming. It's very theoretical, but it lays a good foundation. It should take three or four months of fulltime study, but programming isn't something you learn overnight.If you can't get through this sequence, you're not going to be able to program, so you might as well give up now.Code, by Charles Petzold.The C Programming Language, K&RThe Structure and Interpretation of Computer Programs, Abelson and Sussman.My rule is...

   Steps,Programming,No experience,No knowledge     2011-11-07 08:27:48

  STOP WRITING GOOD CODE; START WRITING GOOD SOFTWARE

Good software trumps elaborate code. And unfortunately, you can’t usually have both. The real world has deadlines and ship dates. It’s a game of pick two:Ship on timeShip with elaborate codeShip with a fantastic productAlmost always, you should pick the first and the last when you’re building software applications for users (if you’re building API’s or open source libraries for other developers, then it’s a different story). Too often I have seen de...

   Good software,Standard,Good code,Deadline,Tradeoff     2011-11-20 06:56:06

  How NOT to teach a computer language

For the past year or so my wife has been taking online classes to get a computer science degree. For most of her classes she’s done great, she’s been flying through HTML and SQL, even up to the point where she can handle multilevel joins and optimizing through indexes. That was until she hit her vb.net class. I had no idea why she was having problems with a language has easy as vb.net so I started helping her out and find out why she was having so many problems. I’ve also ad...

   Programming,Teach,Book,Grade,Method,Computer     2011-11-06 14:52:13

  Javascript motion tracking

It is very often that I have to do video motion tracking for interactive video campaign in my daily work. If I’m used used to do that in Flash, I made a quick experiment to do the same in javascript. Thanks to Olof Storm who made me a perfect corner pin motion tracking in After Effects, and I’ve been using some code from Steven Wittens to draw an image in perspective. Click here to see the motion tracking demo (give it a bit of time to fully load). What I’m doing in this dem...

   JavaScript,Motion tracking,Flash     2012-03-20 07:43:46

  Check if query string variable exists ASP.NET C#/VB

One of the problems I encountered when I started programming ASP.NET websites was to do with the Request.QueryString function. The first projects I was worked on were built with VB.NET and I used the following code to check the existence of a query string variable:VB.NET Codeview plaincopy to clipboardprint?If Request.QueryString("[VARIABLE]") <> Nothing Then        'CODE HERE  End If  This code check...

   ASP.NET,Query string,Request,Empty,NULL,Check     2011-11-05 15:29:50

  I've got an idea for an app

I’ve been an iPhone developer for over three years now. The first app I built was CookieCombo. We sold enough copies to go bowling twice, but still it was completely worth it. We tweeted about it, and got some awesome gigs out of that. Everybody was in need of iPhone developers, and there was a huge shortage. Good times.As more and more people got to know that I’m an iPhone developer, I got to hear the following phrase more often: “Hey, you know, I got a great idea for an app...

   Idea,App,Induction,Creativity,Innovation     2011-09-08 10:37:09

  Obviously Correct

What do automatic memory management, static types and purity have in common? They are methods which take advantage of the fact that we can make programs obviously correct (for some partial definition of correctness) upon visual inspection. Code using automatic memory management is obviously correct for a class of memory bugs. Code using static types is obviously correct for a class of type bugs. Code using purity (no mutable references or side effects) isobviously c...

   Memory management,Code,Static,Purity     2011-11-07 08:13:05